﻿using Sustainalytics.Entities;
using System;
using System.Collections.Generic;


namespace Sustainalytics.Insights.BusinessLogic
{

    public interface IInsightBussinesLogic
    {
        bool Create(Insight newInsight);

        bool Update(Insight newInsight);

        Insight Read(Guid id);

        bool Update(List<Tuple<Guid, InsightState>> updateList);

        bool Delete(Guid id);

        List<Insight> Read(DateTime publishedOnDate, string titlePart, InsightState? state, Guid? insightTopicId, Guid? insightSectorId,
                           DateTime noOlderThan, int? pageIndex, int? pageSize, string orderby, bool orderAsc);

        long ReadCount(DateTime publishedOnDate, string titlePart, InsightState? state, Guid? insightTopicId, Guid? insightSectorId, DateTime noOlderThan);

        bool Delete(List<Guid> ids);
    }
}